package com.wmx.jdbc_template_app.easypoi;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelEntity;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 用户信息导出实体
 * 1、注意:导出Excel的对象必须实现对象序列化接口
 *
 * @author wangMaoXiong
 * @version 1.0
 * @date 2024/4/20 15:48
 */
@Data
public class UserExportVO implements Serializable {

    @Excel(name = "姓名")
    private String realName;

    @Excel(name = "性别", replace = {"男_1", "女_2"}, suffix = "生")
    private Integer sex;

    @Excel(name = "出生日期", format = "yyyy-MM-dd")
    private Date birthday;

    @Excel(name = "手机号码")
    private String phone;

    @Excel(name = "固定电话")
    private String tel;

    @Excel(name = "邮箱")
    private String email;

    /**
     * type：导出类型 1 是文本 2 是图片,3 是函数,10 是数字， 11 特殊符号 默认是文本
     * ExcelIgnore：表示导出时忽略
     */
    @Excel(name = "头像", type = 2, width = 15)
    // @cn.afterturn.easypoi.excel.annotation.ExcelIgnore
    private String avatar;

    /**
     * 集合、数组，默认导出的内容格式如：[打球，看电影，跑步]
     * 如果想自定义格式，可以修改默认的 getter 方法。
     */
    @Excel(name = "爱好", width = 20.0)
    private List<String> happys;

    /**
     * 定义关联导出的实体类对象
     * 一对一关联导出，标题处于同一行，数据也是同一行
     */
    @ExcelEntity(name = "cardExportVO")
    private CardExportVO cardExportVO;

    public String getHappys() {
        return ObjUtil.isEmpty(happys) ? "" : StrUtil.join("，", happys);
    }

}